let websocket = null;

//判断当前浏览器是否支持WebSocket, 主要此处要更换为自己的地址
if ('WebSocket' in window) {
    //websocket = new WebSocket("ws://192.168.3.18:9091/websocket/1");
    websocket = new WebSocket("ws://10.112.29.28:9091/websocket/1");

} else {
    setMessageToConsole("Not support websocket");
    alert('Not support websocket')
}

//连接发生错误的回调方法
websocket.onerror = function () {
    setMessageToConsole("error");
};

//连接成功建立的回调方法
websocket.onopen = function (event) {
    //setMessageToConsole("open");
}

//接收到消息的回调方法
websocket.onmessage = function (event) {
    let data = JSON.parse(event.data);
    let msgType = data.msgType;

    if ("report" === msgType) {
        table.$table.bootstrapTable('updateCellByUniqueId', {
            id: data.name,
            field: data.email,
            value: data.msg
        });
    }
    if ("screen" === msgType) {
        setMessageToScreenLog(event.data);
    }
}

//连接关闭的回调方法
websocket.onclose = function () {
    setMessageToConsole("close");
}

//监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
window.onbeforeunload = function () {
    websocket.close();
}

//将消息显示在网页上
function setMessageToConsole(msg) {
    console.log(msg)
}

function setMessageToScreenLog(data) {
    let dataObj = eval("(" + data + ")");
    let level = dataObj.level;
    let msg = dataObj.msg;

    switch (level) {
        case "log":
            screenLog.log(msg);
            break;
        case "info":
            screenLog.info(msg);
            break;
        case "warn":
            screenLog.warn(msg);
            break;
        case "error":
            screenLog.error(msg);
            break;
        default:
            screenLog.log(msg);
    }
}

//关闭连接
function closeWebSocket() {
    websocket.close();
}

//发送消息
function send(message) {
    if (websocket.readyState === 1) {
        websocket.send(message);
    }
}